var net = require('net');

var server = net.createServer();
var sockets = []; // 存储所有客户端socket

// 创建TCP服务器
server.on('error', function(err) {
    console.log('服务异常: ', err.message);
});

server.on('close', function() {
    console.log('服务关闭');


});

server.on('connection', function(socket) {
    console.log('服务端建立一个新连接');
    sockets.push(socket);

    //把来自客户端的数据转发送给其他所有客户端
    socket.on('data', function(data) {
        console.log('收到数据: ', data.toString());

        //服务器广播数据，把来自客户端的数据转发送给其他所有客户端
        sockets.forEach(function(otherSocket) {
            if (otherSocket !== socket) {
                otherSocket.write(data);
            }
        });
    });

    //把关闭连接的客户端从服务器广播列表中给删除掉
    socket.on('close', function() {
        console.log('一个链接已关闭');
        var index = sockets.indexOf(socket);

        sockets.splice(index, 1);
    });
});

server.listen(8080);